package com.flyco.modules.sms.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flyco.common.aspect.annotation.Dict;
import com.flyco.modules.sms.entity.SmsCouponProductCategoryRelation;
import com.flyco.modules.sms.entity.SmsCouponProductRelation;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class SmsCouponModel {
    /**id*/
    private Long id;
    /**优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券*/
    private Integer type;
    /**券名称*/
    private String name;
    /**使用平台：all->全部；app->app端；wap->移动端；pc->pc端；wx->微信小程序*/
    @Dict(dicCode = "coupon_platform")
    private String platform;
    /**数量*/
    private Integer count;
    /**金额/折扣*/
    private java.math.BigDecimal amount;
    /**每人限领张数*/
    private Integer perLimit;
    /**每个门店限领张数*/
    private Integer limitPerStore;
    /**使用门槛；0表示无门槛*/
    private java.math.BigDecimal minPoint;
    /**折扣券限制最高优惠金额*/
    private java.math.BigDecimal limitAmount;
    /**startTime*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**endTime*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**使用类型：0->全场通用；1->指定分类；2->指定商品*/
    @Dict(dicCode = "coupon_use_type")
    private Integer useType;
    /**备注*/
    private String note;
    /**发行数量*/
    private Integer publishCount;
    /**已使用数量*/
    private Integer useCount;
    /**领取数量*/
    private Integer receiveCount;
    /**可以领取的日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date enableTime;
    /**优惠码*/
    private String code;
    /**可领取的会员类型：0->无限时*/
    private Integer memberLevel;
    /**券类型 discount 优惠券／gift 赠品券 / rate 折扣券*/
    @Dict(dicCode = "coupon_type")
    private String couponType;
    /**券是否绑定用户，0不绑定，1绑定*/
    private Integer bindFlag;
    /**赠品券虚拟分组，组间共存，组内互斥*/
    private String giftGroup;
    /**赠品数据，json格式:[{"productSn":"FS871","quantity":2}]*/
    private Object giftData;
    /**创建人*/
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**更新人*/
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**优惠券关联分类*/
    private List<Long> categoryList = new ArrayList<>();
    /**优惠券关联商品*/
    private List<Long> productList = new ArrayList<>();
}
